// 使用Express框架构建web服务

//1. 导入express框架
const express = require("express");
// 导入自定义的路由器模块文件
const userRouter = require("./routes/user");
const shopRouter = require("./routes/shop");
//2. 创建app服务应用对象
const app = express();

// 配置模板引擎
app.set("view engine" , "ejs");
// 配置模板的存放目录
app.set("views","./views");

// 在此处放置中间件（自定义的为应用级中间件）
app.use((req, res, next) => {
    console.log("应用级中间被访问"+req.url);
    next(); // 执行next让请求继续下去。（放过去）
});

// 使用内置中间件配置项目的静态资源目录
app.use(express.static("public"));

//3. 设置路由（根据请求作出响应回调）
app.get("/", (req, res) => {
    res.send("网站首页！");
});

// 使用自定义路由器模块
app.use("/user", userRouter);  // 使用user路由, 并指定 /user访问前缀
app.use("/shop", shopRouter);  // 使用shop路由, 并指定 /shop访问前缀

// 错误级中间件(服务端的错误处理)
app.use((err, req, res, next) => {
    // 处理err错误信息
    console.log(err.message);
    res.send("服务忙，请稍后再试！");
});

//4. 监听端口开启服务
app.listen(3000, ()=>{
    console.log("服务已启动，端口：3000");
});